import pandas as pd

# 字典创建法 - 显示索引
i = [ '1号', '2号', '3号', '4号' ]
v1 = [ 53, 64, 72, 82 ]
v2 = [ '女', '男', '男', '女' ]
sr1 = pd.Series( v1, index=i )
sr2 = pd.Series( v2, index=i )
df = pd.DataFrame( { '年龄':sr1, '性别':sr2 } )
print(df)
"""
    年龄 性别
1号  53  女
2号  64  男
3号  72  男
4号  82  女
"""
# 访问元素 - 显示索引
print(df.loc[ '1号', '年龄' ]) # 53
# 花式索引 - 显示索引
print(df.loc[ ['1号', '3号'] , ['性别','年龄'] ])
"""
   性别  年龄
1号  女  53
3号  男  72
"""
# 修改元素 - 显示索引
df.loc[ '3号', '年龄' ] = 100
print(df)
"""
     年龄 性别
1号   53  女
2号   64  男
3号  100  男
4号   82  女
"""


# 字典创建法 - 隐式索引
i = [ '1号', '2号', '3号', '4号' ]
v1 = [ 53, 64, 72, 82 ]
v2 = [ '女', '男', '男', '女' ]
sr1 = pd.Series( v1, index=i )
sr2 = pd.Series( v2, index=i )
df = pd.DataFrame( { '年龄':sr1, '性别':sr2 } )
print(df)
"""
    年龄 性别
1号  53  女
2号  64  男
3号  72  男
4号  82  女
"""
# 访问元素 - 显示索引
print("隐式",df.iloc[ 0, 0 ]) # 53
# 花式索引 - 显示索引
print(df.iloc[ [0, 2] , [0,1] ])
"""
   年龄  性别
1号  女  53
3号  男  72
"""
# 修改元素 - 显示索引
df.iloc[ 2, 0 ] = 100
print(df)
"""
     年龄 性别
1号   53  女
2号   64  男
3号  100  男
4号   82  女
"""


# 数组创建法
v = [[53,'女','赵'],[64,'男','田'],[72,'男','孙'],[82,'女','李']]
i = ['1号','2号','3号','4号']
c = ['年龄','性别','姓氏']
df = pd.DataFrame(v,index=i,columns=c)
print(df)
"""
    年龄 性别 姓氏
1号  53  女  赵
2号  64  男  田
3号  72  男  孙
4号  82  女  李
"""
print("=========")
print(df.loc['1号':'3号','年龄'])
"""
1号    53
2号    64
3号    72
Name: 年龄, dtype: int64
"""
# 提取二维对象的行
print(df.loc[ '3号' , : ])
"""
年龄    72
性别     男
姓氏     孙
Name: 3号, dtype: object
"""
# 提取矩阵对象的列
print(df.loc[ : , '姓氏' ])
"""
1号    赵
2号    田
3号    孙
4号    李
Name: 姓氏, dtype: object
"""


# 数组创建法
v = [[53,'女','赵'],[64,'男','田'],[72,'男','孙'],[82,'女','李']]
i = ['1号','2号','3号','4号']
c = ['年龄','性别','姓氏']
df = pd.DataFrame(v,index=i,columns=c)
print(df)
"""
    年龄 性别 姓氏
1号  53  女  赵
2号  64  男  田
3号  72  男  孙
4号  82  女  李
"""
print("=========")
print(df.iloc[0:3,0])
"""
1号    53
2号    64
3号    72
Name: 年龄, dtype: int64
"""
# 提取二维对象的行
print(df.iloc[ 2 , : ])
"""
年龄    72
性别     男
姓氏     孙
Name: 3号, dtype: object
"""
# 提取矩阵对象的列
print(df.iloc[ : , 2 ])
"""
1号    赵
2号    田
3号    孙
4号    李
Name: 姓氏, dtype: object
"""